#include "ScreenInfo.h"
#include "Exception.h"
#include "Logger.h"

using namespace game_engine::data_format;
using namespace game_engine::utils;

///////////////////////////////////////////////////////////////////////////////
// Constructors and Destructors
///////////////////////////////////////////////////////////////////////////////

ScreenInfo::ScreenInfo(void)
    : width(), height()
{
}

ScreenInfo::~ScreenInfo(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Other public methods
///////////////////////////////////////////////////////////////////////////////

void ScreenInfo::parse(XmlDocument &doc)
{
    // Get screen information
    try 
    {
        height = XmlUtils::getUINT32("level_parameters.screen_size.height", &doc);
        width = XmlUtils::getUINT32("level_parameters.screen_size.width", &doc);
    } catch (exception &e)
    {
        string msg = "Parsing screen information failed. ";
        msg.append(e.what());
        Logger::ERR(GAMEENGINE_LOG, msg);
        throw ParserException(msg);
    }
}

///////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////

const UINT32 ScreenInfo::getWidth(void) const
{
    return width;
}

const UINT32 ScreenInfo::getHeight(void) const
{
    return height;
}
